<?php

namespace App\Models\Game\Config;

use App\Models\Game\Model;
use App\Models\Traits\Game\LogsActivity;
use Illuminate\Database\Eloquent\SoftDeletes;

class Game extends Model
{
    use SoftDeletes, LogsActivity;

    /**
     * 数据表名称
     *
     * @var string
     */
    protected $table = 't_config_game_list';

    /**
     * 不可批量赋值的属性
     *
     * @var array
     */
    protected $guarded = [];

    /**
     * 获取开放平台
     *
     * @param string|null $value
     * @return array
     */
    public function getPrivateAttribute(?string $value): array
    {
        return is_null($value) ? [] : json_decode($value, true);
    }

    /**
     * 设置开放平台
     *
     * @param array $value
     * @return void
     */
    public function setPrivateAttribute(array $value)
    {
        $this->attributes['private'] = count($value) > 0 ? json_encode($value) : null;
    }

    /**
     * 获取游戏分类
     *
     * @param int|null $value
     * @return array
     */
    public function getCategoryAttribute(?int $value): array
    {
        return decimal_to_binary_bits($value);
    }

    /**
     * 设置游戏分类
     *
     * @param array $value
     * @return void
     */
    public function setCategoryAttribute(array $value)
    {
        $this->attributes['category'] = array_sum($value);
    }

    /**
     * 类型【fish】
     */
    const TYPE_FISH = 'fish';

    /**
     * 类型【slo】
     */
    const TYPE_SLO = 'slo';

    /**
     * 宝石矿工
     */
    const GAME_SLOBSKG = 'slobskg';

    /**
     * 彩虹水晶
     */
    const GAME_SLOSTARBURST = 'slostarburst';

    /**
     * 吸血鬼
     */
    const GAME_SLOBLOODSUCKER = 'slobloodsucker';

    /**
     * 冰球联盟
     */
    const GAME_SLOHOCKEY = 'slohockey';

    /**
     * 水果冲击
     */
    const GAME_SLOFRUITRUSH = 'slofruitrush';

    /**
     * 超级777
     */
    const GAME_SLOSUPER777 = 'slosuper777';

    /**
     * 糖果消除
     */
    const GAME_SLOCANDY = 'slocandy';

    /**
     * 海盗宝藏
     */
    const GAME_SLOPIRATE = 'slopirate';

    /**
     * 人鱼秘密
     */
    const GAME_SLOMERMAID = 'slomermaid';

    /**
     * 速度之王
     */
    const GAME_SLOKINGOFSPEED = 'slokingofspeed';

    /**
     * 法老金币
     */
    const GAME_SLOPHARAOHCOINS = 'slopharaohcoins';

    /**
     * 武士传说
     */
    const GAME_SLOSAMURAIPREACH = 'slosamuraipreach';

    /**
     * 小鸡农场
     */
    const GAME_SLOTHECHICKENFARM = 'slothechickenfarm';

    /**
     * 星际之旅
     */
    const GAME_SLOSPACETRAVEL = 'slospacetravel';

    /**
     * 冰雪寻宝
     */
    const GAME_SLOBXXB = 'slobxxb';

    /**
     * 冒险岛
     */
    const GAME_SLOADVENTUREISLAND = 'sloadventureisland';

    /**
     * 卡尔之书
     */
    const GAME_SLOTHEBOOKOFCARL = 'slothebookofcarl';

    /**
     * 黄金列车
     */
    const GAME_SLOMONEYTRAIN = 'slomoneytrain';

    /**
     * 仙灵女巫
     */
    const GAME_SLOWITCHELF = 'slowitchelf';

    /**
     * 大富翁
     */
    const GAME_SLOTHERICHMAN = 'slotherichman';

    /**
     * 魔法师
     */
    const GAME_SLOTHEMAGICIANS = 'slothemagicians';

    /**
     * 奥林匹斯之怒
     */
    const GAME_SLOWRATHOFOLYMPUS = 'slowrathofolympus';

    /**
     * 精灵公主
     */
    const GAME_SLOGODDESS = 'slogoddess';

    /**
     * 世界杯冠军
     */
    const GAME_SLOWORLDCUPCHAMPIONS = 'sloworldcupchampions';

    /**
     * 龙虎斗
     */
    const GAME_SLOWANTEDDEADORAWILD = 'slowanteddeadorawild';

    /**
     * 扑克人生
     */
    const GAME_SLOPOKERLIFE = 'slopokerlife';

    /**
     * 麻将
     */
    const GAME_SLOMAHJONG = 'slomahjong';

    /**
     * 超级777 II
     */
    const GAME_SLOCOCKFIGHTING = 'slocockfighting';

    /**
     * 动物派对
     */
    const GAME_SLOANIMALPARTY = 'sloanimalparty';

    /**
     * 玛雅神庙
     */
    const GAME_SLOMYANTEMPLE = 'slomyantemple';

    /**
     * 龙神
     */
    const GAME_SLODRAGONFORTUNE = 'slodragonfortune';

    /**
     * 艾拉
     */
    const GAME_SLOELLA = 'sloella';

    /**
     * 冰雪世界
     */
    const GAME_SLOICEAGE = 'sloiceage';

    /**
     * 勇士游戏
     */
    const GAME_SLODRAGONQUEST = 'slodragonquest';

    /**
     * 西部世界
     */
    const GAME_SLOWESTWORLD = 'slowestworld';

    /**
     * 阿拉丁
     */
    const GAME_SLOALADDIN = 'sloaladdin';

    /**
     * 狂欢俱乐部
     */
    const GAME_SLORAVECLUB = 'sloraveclub';

    /**
     * 发财神
     */
    const GAME_SLOFACAISHEN = 'slofacaishen';

    /**
     * 狗狗情怀
     */
    const GAME_SLODOG = 'slodog';

    /**
     * 糖果大乱斗
     */
    const GAME_SLOSWEETMELEE = 'slosweetmelee';

    /**
     * 宙斯
     */
    const GAME_SLOZEUS = 'slozeus';

    /**
     * 宙斯
     */
    const GAME_SLOROULETTE = 'sloroulette';

    /**
     * 宙斯
     */
    const GAME_SLOCAPTAINPENGUIN = 'slocaptainpenguin';

    /**
     * 宙斯
     */
    const GAME_SLOLUCKYJOKER = 'sloluckyjoker';

    /**
     * 大满贯
     */
    const GAME_FISHJACKPOT = 'fishjackpot';

    /**
     * 虎虎生财
     */
    const GAME_SLOPARROT = 'sloparrot';

    /**
     * 船长赏金
     */
    const GAME_SLOCAPTAINSBOUNDY = 'slocaptainsboundy';

    /**
     * 精灵
     */
    const GAME_SLOGENIES3WISHES = 'slogenies3wishes';

    /**
     * 鼠鼠福福
     */
    const GAME_SLOSSFF = 'slossff';

    /**
     * 鼠鼠福福
     */
    const GAME_SLOSBJN = 'slosbjn';
}
